210 FOR Z=1 TO T(1)-1: VX=VAL(D(1,CS(1,Z))): IF VX<=VC THEN 220
215 FOR TZ=T(1) TO Z+1 STEP -1: CS(1,TZ)=CS(1,TZ-1): NEXT: GOTO 230
220 NEXT Z
230 CS(1,Z)=C
235 A$=INKEY$: IF A$="" THEN 235 ELSE IF A$=CHR$(13) THEN 240 ELSE IF LEN(A$)=2 THEN AI=ASC(RIGHT$(A$,1)): IF AI=68 THEN 245 ELSE IF AI=60 THEN 242 ELSE 235 ELSE 235
240 IF D(1,C)="" THEN BEEP: GOTO 190
242 PRINT TAB(T): NEXT T: PRINT: GOTO 180
245 AC=CSRLIN: LOCATE 25,40: COLOR 7,0: PRINT TAB(79)
247 IF AC>22 THEN PRINT: PRINT: LOCATE 24,1 ELSE LOCATE AC+2,1
248 IF T(1)<2 THEN PRINT TAB(15);"Sample too small to evaluate.": GOTO 280
250 N=T(1): SD(1)=SQR((X2(1)-X(1)*X(1)/N)/(N-1))
260 IF N MOD 2=0 THEN MD(1)=(VAL(D(1,CS(1,N/2)))+VAL(D(1,CS(1,N/2+1))))*0.5 ELSE MD(1)=VAL(D(1,CS(1,N/2+0.5)))
400 FOR Z=1 TO T(T)-1: VX=VAL(D(T,CS(T,Z))): IF VX<=VC THEN 405
403 FOR TZ=T(T) TO Z+1 STEP -1: CS(T,TZ)=CS(T,TZ-1): NEXT: GOTO 410
405 NEXT Z
410 CS(T,Z)=C
420 A$=INKEY$: IF A$="" THEN 420 ELSE IF A$=CHR$(13) THEN 425 ELSE IF LEN(A$)=2 THEN AI=ASC(RIGHT$(A$,1)): IF AI=68 THEN 440 ELSE IF AI=60 THEN 430 ELSE 420 ELSE 420
425 IF D(T,C)="" THEN BEEP: GOTO 380
430 NEXT T: RETURN
440 SCREEN ,,0: FOR T=1 TO A: N=T(T): IF N<2 THEN 465
450 SD(T)=SQR((X2(T)-X(T)*X(T)/N)/(N-1))
460 IF N MOD 2=0 THEN MD(T)=(VAL(D(T,CS(T,N/2)))+VAL(D(T,CS(T,N/2+1))))*0.5 ELSE MD(T)=VAL(D(T,CS(T,N/2+0.5)))
465 NEXT
470 AS=0: AC=CSRLIN
472 IF A>7 THEN GOSUB 480: IF A>14 THEN GOSUB 480: IF A>21 THEN GOSUB 480
805 INPUT " Do you want the DATAFILE printout SORTED or in INPUT ORDER? (S or I) ",A$
806 IF A$="i" OR A$="I" THEN BSRT=0: GOTO 810 ELSE IF A$="s" OR A$="S" THEN BSRT=1 ELSE BEEP: GOTO 805
808 IF A>1 THEN PRINT: PRINT TAB(12);: INPUT "Which sample number do you wish to SORT by? ",NS: IF NS>A THEN BEEP: GOTO 808
810 PRINT: PRINT TAB(5);: INPUT "Do you want a printout of data on SCREEN or PRINTER? (S or P) ",A$
815 IF A$="P" OR A$="p" THEN PO$="LPT1:" ELSE IF A$="S" OR A$="s" THEN PO$="SCRN:": FOR T=0 TO INT((A-1)/7): SCREEN ,,T,0: CLS: NEXT: SCREEN ,,0: GOTO 830 ELSE BEEP: GOTO 810
820 PRINT: PRINT TAB(23); "Be sure paper is in printer.": ON ERROR GOTO 1280
823 PRINT :PRINT TAB(24); "Press any key when ready:"
825 A$=INKEY$: IF A$="" THEN 825
830 OPEN PO$ FOR OUTPUT AS #1
835 IF A>1 THEN 885 ELSE IF A=0 THEN BEEP: PRINT: PRINT TAB(18);"There is no data in this datafile.": GOTO 880
955 PRINT #1,TAB((T-A1+1)*10-4);: PRINT #1,USING P$;MD(T);: NEXT
960 PRINT #1,:PRINT #1, "SDEV";
970 FOR T=A1 TO A2: MAB=SD(T): GOSUB 570
972 PRINT #1,TAB((T-A1+1)*10-4);: PRINT #1,USING P$;SD(T);: NEXT
975 PRINT #1,: PRINT: IF A2=A THEN 980
978 IF PO$="LPT1:" THEN PRINT "Change paper in printer, then press `P' to print next page of data:" ELSE PRINT TAB(19);"Press `P' to print next page of data,"
980 PRINT TAB(20);"Press space bar to return to menu:"
990 A$=INKEY$: IF A$="" THEN 990 ELSE IF A$="p" OR A$="P" THEN RETURN ELSE IF A$=CHR$(32) THEN CLOSE #1: GOTO 30 ELSE BEEP: GOTO 990
1000 CLS: PRINT TAB(28);"SAVING DATA TO DISK": PRINT TAB(28);STRING$(19,205)
1010 ON ERROR GOTO 1250
1020 PRINT: PRINT TAB(13);: INPUT "What name should I use to save this datafile? ", FILE$
1030 OPEN FILE$ FOR OUTPUT AS #1
1035 WRITE #1, A,C: FOR T=1 TO A: WRITE #1, T(T): NEXT
1040 FOR T=1 TO A: FOR Z=1 TO C : WRITE #1, D(T,Z): NEXT: NEXT
1050 FOR T=1 TO A: FOR Z=1 TO T(T): WRITE #1, CS(T,Z): NEXT: NEXT
1060 FOR T=1 TO A: WRITE #1, N$(T),X(T),X2(T),MD(T),SD(T): NEXT: CLOSE #1
1070 PRINT :PRINT :PRINT TAB(20); "Your data has been saved in "; FILE$
1080 PRINT :PRINT TAB(20);"Press any key to return to main menu:"
1090 A$=INKEY$: IF A$="" THEN 1090 ELSE 30
1100 CLS:PRINT TAB(26);"LOADING DATA FROM DISK": PRINT TAB(26);STRING$(22,205)
1110 CLEAR ,,1024: OPTION BASE 1: DEFINT A-C,N,T,Z: DEFSTR D
1115 ON ERROR GOTO 1230
1120 PRINT: PRINT TAB(17);:INPUT "What is the name of your datafile? ", FILE$
1130 OPEN FILE$ FOR INPUT AS #1: INPUT #1,A,C
1135 DIM D(A,2000/A),CS(A,2000/A),T(A),N$(A),X(A),X2(A),MD(A),SD(A)
1138 FOR T=1 TO A: INPUT #1,T(T): NEXT
1140 FOR T=1 TO A: FOR Z=1 TO C: INPUT #1, D(T,Z): NEXT: NEXT
1150 FOR T=1 TO A: FOR Z=1 TO T(T): INPUT #1, CS(T,Z): NEXT: NEXT
1160 FOR T=1 TO A: INPUT #1, N$(T),X(T),X2(T),MD(T),SD(T): NEXT: CLOSE #1
1170 PRINT :PRINT :PRINT TAB(20); FILE$;" has been loaded from disk."
1180 PRINT :PRINT TAB(19);"Press any key to return to main menu:"
1190 A$=INKEY$: IF A$="" THEN 1190 ELSE 30
1200 PRINT TAB(7);:INPUT "Have you saved your current data to disk? (Y or N) ",A$
1210 IF A$<>"y" AND A$<>"Y" THEN 30
1220 END
1230 BEEP: PRINT: IF ERL=1130 AND ERR=53 THEN PRINT TAB(13); "I cannot find a file by that name on drive "; ELSE 1300
1235 IF MID$(FILE$,2,1)=":" THEN DR$=LEFT$(FILE$,2) ELSE DR$="A:"